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(\"
=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n =this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n =this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n m.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;v "+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 =this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n m.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;v "+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
")}})},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&&(i=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-5A[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),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&&(i
');\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 = \"
');\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 = \"=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-5A[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,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;o
")}})},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&&(i=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-5A[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